package com.study.system.mapper;

import com.study.system.entity.ManageClubLog;
import com.study.system.entity.ManageUserLog;
import com.study.system.vo.ClubInfoVO;
import com.study.system.entity.Club;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface ClubMapper {

    // 查询指定用户参加的社团ID
    List<Integer> selectAllClubIdByUserId(Integer userId);

    // 根据ID查询社团
    ClubInfoVO selectByClubId(Integer clubId);

    // 加入社团
    Integer insertAddClubLog(Integer userId, Integer clubId);

    // 查询所有用户可以参加的社团Id
    List<Integer> selectAllClubIdNotInList(List<Integer> clubIdList);

    // 查询所有社团信息
    List<ClubInfoVO> selectAllClub();

    // 通过社团名称查询社团信息
    Club selectByClubName(String clubName);

    // 插入社团新信息
    Integer insertClubInfo(Club club);

    // 查询所有可以管理的社团
    List<Club> selectAllManageClub(Integer userId);

    // 删除用户加入社团记录
    Integer userExitClub(Integer userId, Integer clubId);

    // 修改社团信息
    Integer updateClubInfo(Integer clubId, String name, String profile, String phone, String rules);

    Integer adminUpdateClubInfo(Integer status, Integer clubId, String name, String profile, String phone, String rules);

    // 获取指定社团信息
    ClubInfoVO getInfoById(Integer clubId);

    // 社团踢出成员
    Integer deleteMember(Integer clubId, Integer userId);

    Integer getMemberNumber(Integer clubId);

    List<ClubInfoVO> getAllClubLimit(Integer pageSize, Integer currentIndex);

    List<ManageClubLog> getAllManageClubLog();

    List<ManageUserLog> getAllManageUserLog();

    Integer getClubCount();
}
